package Test;


import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.util.Arrays;
import java.util.List;

public class TestJson {
    public static void main(String[] args) {
        /**
         * 5.认识json
         * json是一种规范，对json字符串或者json文件的格式做出了一定的规定。json应用非常广泛。如在前后端分离的项目中，web api接口返回的数据一般都是json串、用json文件共享数据等。
         * 5.1.json字符串 & json文件
         * json字符串本质就是一个字符串，只不过它满足一定的格式。
         * 比如：{“name”: “ligl”, “course”: [{“name”: “java”, “score”: 67}, {“name”: “spark”, “score”: 80}], “age”: 12} ，即为一个满足json格式的json字符串。
         * 一个普通的文本文件，如果其每一行都是一个json字符串，那么可以称它为一个json文件，文件的后缀一般为.json。
         * 5.2.json基本格式（更详细的请查看官方文档）：
         * {} 双括号表示对象
         * [] 中括号表示数组
         * "" 双引号内是属性或值
         * : 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
         * 5.3.用GSON对java对象进行json序列化和反序列化
         * Gson是谷歌官方推出的支持 JSON <--> Java对象相互转换的一个工具包
         */
        //Java对象转换成Json字符串
        Gson gson = new GsonBuilder().create();
        Student student = new Student();

        student.setName("yang");
        student.setAge(18);
        student.setCourses(Arrays.asList("java", "python"));
        String s = gson.toJson(student);
        System.out.println(s);



    }
}

class Student{
    private String name;
    private Integer age;
    private List<String> courses;

    public List<String> getCourses() {
        return courses;
    }

    public void setCourses(List<String> courses) {
        this.courses = courses;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}